5 POKE56,160:CLR:GOTO2007 7 Q$=CHR$(34):E=56576:V=53248 9 PRINT"[147][142]PRESS D FOR DOCUMENTATION." 10 PRINT"PRESS C FOR CALCULATION." 12 GETA$:IFA$="C"THENPRINT"[147]":GOTO17 13 IFA$="D"THENGOSUB1000:GOTO9 14 IFA$="R"THENGOSUB200:GOTO9 15 GOTO12 16 PRINT"[147]?DEVICE";D;"NOT PRESENT":CLOSE8 17 PRINT"ENTER DISK DRIVE DEVICE NUMBER." 20 PRINT"(ENTER 0 TO EXIT.)" 22 PRINT" 8[145]":INPUTD:IFD=.THENEND 25 IFD>30ORD<4ORD=15THENPRINT"ILLEGAL DEVICE NUMBER":GOTO17 27 POKE183,6:POKE184,8:POKE185,8:POKE186,D:POKE187,52:POKE188,3:POKE820,38 28 POKE824,44:POKE825,85 30 POKE821,83:POKE822,81:POKE823,82:SYS65472:IFPEEK(783)AND1THEN16 31 CLOSE8:OPEN15,D,15:GOSUB900:IFA<20THEN40 32 IFA=62ORA=64THEN400 33 CLOSE15:GOTO17 40 FORI=.TO67:READY:POKE828+I,Y:NEXT 45 POKE183,120:POKE187,255:POKE188,198 50 PRINT#15,"&SQR":POKEE,7:PRINT"[147]" 65 F=.:PRINT"ENTER INTEGER FROM 1 TO 99 FOR COMPUTER." 66 PRINT"(PRESS RETURN FOR NO NUMBER.)" 68 PRINT"(ENTER R TO RESET DISK DRIVE.)" 70 N$="":PRINT:INPUTN$:IFN$="R"THENGOSUB200:GOTO45 71 N=VAL(N$):IFN>99THEN70 72 IFN<1THENF=1:GOTO77 75 POKE140,N 77 PRINT"ENTER INTEGER FROM 1 TO 99 FOR DOS." 78 PRINT"(PRESS RETURN FOR NO NUMBER.)" 80 N=.:PRINT:INPUTN:IFN>99THEN80 82 IFN<1THENIFFTHEN100 83 PRINT"[147]CALCULATING..." 84 IFN=>1THENPOKE888,N:SYS49675 85 IFN<1THENSYS49693:GOTO65 90 IFFTHENSYS49586:GOTO65 95 SYS49152:GOTO65 100 GOSUB200:CLOSE15:END 200 PRINT"[147]JUST A SECOND PLEASE..." 210 PRINT#15,"U:" 220 FORI=1TO3000:NEXT 230 OPEN8,D,8,"&SQR":CLOSE8:RETURN 400 PRINT"[147]THERE IS NO USR FILE NAMED ";Q$;"&SQR";Q$ 410 PRINT"ON DISK. PRESS C TO CREATE SUCH A FILE." 420 PRINT"OR PRESS X TO EXIT." 430 GETA$:IFA$="C"THEN460 440 IFA$="X"THENEND 450 GOTO430 460 OPEN8,D,8,"0:&SQR,U,W" 470 FORI=49701TO50125:PRINT#8,CHR$(PEEK(I));:NEXT 480 CLOSE8:PRINT"[147]":GOTO40 500 DATA17,17,83,81,82,32,40,1,1,41,32 510 DATA91,70,82,79,77,32,67,79,77,80 520 DATA85,84,69,82,93,32,61,13,13,0 530 DATA17,17,83,81,82,32,40,1,1,41,32 540 DATA91,70,82,79,77,32,68,79,83,93 550 DATA32,61,13,13,0,85,52,58,1,0 560 DATA77,45,82,0,3,120 900 INPUT#15,A,B$,C,Y 910 IFA<20ORA=62ORA=64THENRETURN 920 PRINT:PRINTA:PRINT:PRINTB$:PRINT:PRINTC,Y 930 RETURN 1000 Q$=CHR$(34):PRINT"[147]PRESS S TO PRINT TO SCREEN." 1010 PRINT"PRESS P TO PRINT TO PRINTER." 1020 GETB$:IFB$="P"THENOPEN4,4,7:CMD4:GOTO1050 1030 IFB$="S"THEN1050 1040 GOTO1020 1050 POKEV+24,22:PRINT"[147]"; 1060 PRINT"[212]HIS FILE DEMONSTRATES THE USE OF THE" 1070 PRINT"6502 [205][208][213] IN THE 1541 DRIVE AS A MATH" 1080 PRINT"COPROCESSOR. [193]N [205][204] ROUTINE IN THE" 1090 PRINT"COMPUTER CALCULATES THE SQUARE ROOT OF" 1100 PRINT"AN INTEGER (FROM 1 TO 99) TO 119" 1110 PRINT"SIGNIFICANT FIGURES. [193] SIMILAR ROUTINE" 1120 PRINT"IS [211][193][214][197]D TO DISK IN A FILE NAMED" 1130 PRINTQ$;"&[211][209][210]";Q$;". [212]HE [196][207][211] AMPERSAND COMMAND" 1140 PRINT"IS THEN CALLED TO LOAD THE FILE INTO A" 1150 PRINT"SPECIFIED [196][207][211] BUFFER AND EXECUTE THE" 1160 PRINT"6502 ROUTINE AT THE FIRST BYTE. [201]N" 1165 IFB$="P"THEN1190 1170 PRINT" [208][210][197][211][211] [210][197][212][213][210][206]." 1180 GETA$:IFA$<>CHR$(13)THEN1180 1190 PRINT"[147]THIS APPLICATION, WE ARE NOT YET READY" 1200 PRINT"FOR THE ROUTINE, SO THE FIRST BYTE IS A" 1210 PRINT"DUMMY ([210][212][211]). [215]HEN WE WANT THE [196][207][211] TO" 1220 PRINT"CALCULATE, WE SEND A ";Q$;"[213]4:;[195][200][210]$([206])";Q$;" OVER" 1230 PRINT"THE COMMAND CHANNEL (15), WHERE [206] IS" 1240 PRINT"THE ARGUMENT OF [211][209][210]. [212]HE [213]4 DOES A [196][207][211]" 1250 PRINT"[202][211][210] TO $0503 AND PULLS THE ARGUMENT" 1260 PRINT"FROM THE COMMAND BUFFER ($0203). [212]HE" 1270 PRINT"ROUTINE RETURNS 120 CHARACTERS IN" 1280 PRINT"($0300 TO $0377). [212]HEY CAN BE FETCHED" 1290 PRINT"WITH A MEMORY READ ([205]-[210]). [201]N THIS" 1295 IFB$="P"THEN1320 1300 PRINT" [208][210][197][211][211] [210][197][212][213][210][206]." 1310 GETA$:IFA$<>CHR$(13)THEN1310 1320 PRINT"[147]PROGRAM, THIS IS DONE IN [205][204]. [194]UT AS" 1330 PRINT"LONG AS THE ";Q$;"&[211][209][210]";Q$;" IS ON DISK, YOU CAN" 1340 PRINT"USE IT FOR [211][209][210]([206]) BY RUNNING THE" 1350 PRINT"FOLLOWING [194][193][211][201][195] PROGRAM:" 1360 PRINT"10 [207][208][197][206]15,8,15,";Q$;"&[211][209][210]";Q$ 1370 PRINT"20 [201][206][208][213][212][206]:[208][210][201][206][212]#15,";Q$;"[213]4:";Q$;";[195][200][210]$([206])" 1380 PRINT"30 [197]=56576:[208][207][203][197][197],7" 1390 PRINT"40 [201][198][208][197][197][203]([197])[193][206][196]128[212][200][197][206]40" 1400 PRINT"50 [208][210][201][206][212]#15,";Q$;"[205]-[210]";Q$;";[195][200][210]$(0);[195][200][210]$(3);[195][200][210]$(1"; 1410 PRINT"20);" 1420 PRINT"60 [198][207][210][201]=1[212][207]120:[199][197][212]#15,[193]$:[208][210][201][206][212][193]$;:[206][197][216][212]" 1425 IFB$="P"THEN1450 1430 PRINT" [208][210][197][211][211] [210][197][212][213][210][206]." 1440 GETA$:IFA$<>CHR$(13)THEN1440 1450 PRINT"[147]70 [208][210][201][206][212]#15,";Q$;"[213]:";Q$" 1455 [153]"80 ASC(null)(null)RIGHT$=1(null)(null)3000:(null)VAL(null)(null):LEN(null)(null)(null)VAL15" 1460 [153]"(null)PON (null)(null)(null)NING ";Q$;"LEN(null)(null)(null)(null)LEN.PEEKRIGHT$(null)";Q$;", IF YOU" 1470 [153]"SELECT LENATN(null)LEN(null)(null)ATN(null)RIGHT$(null)(null), THE DISK WILL BE" 1480 [153]"SCANNED FOR A (null)(null)(null) FILE NAMED ";Q$;"&(null)(null)(null)";Q$;"." 1490 [153]"RIGHT$F IT IS NOT FOUND, YOU ARE GIVEN A" 1500 [153]"CHANCE TO CREATE ONE. (null)HEN YOU ARE" 1510 [153]"PROMPTED FOR NUMBERS TO BE PROCESSED BY" 1520 [153]"THE COMPUTER AND BY STR$(null)(null). (null)OU MAY PRESS" 1530 [153]"(null)VAL(null)(null)(null)(null) FOR (null)(null) (null)(null)(null)PEEKVAL(null). RIGHT$F YOU DO SO FOR" 1545 [139]B$[178]"P"[167]1570 1550 [153]" (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)." 1560 [161]A$:[139]A$[179][177][199](13)[167]1560 1570 [153]"LOADBOTH COMPUTER AND STR$(null)(null), THE PROGRAM ENDS." 1575 [153]"(null)HE STR$(null)(null) ARGUMENT IS SENT TO THE DRIVE" 1580 [153]"AND THE COMPUTER NUMBER IS PROCESSED BY" 1590 [153]"THE COMPUTER. (null)HEN THE COMPUTER PRINTS" 1600 [153]"THE RESULT TO THE SCREEN, IT THEN WAITS" 1610 [153]"FOR THE SIGNAL FROM STR$(null)(null) (BIT 7 OF $STR$STR$00" 1620 [153]"CLEAR) TO READ THE STR$(null)(null) RESULT FROM THE" 1630 [153]"DRIVE AND PRINT IT TO THE SCREEN." 1632 [153]"ATNLL FIVE STR$(null)(null) BUFFERS ARE USED, AS WELL" 1634 [153]"AS SEVERAL REGISTERS IN ZERO PAGE" 1635 [153]"MEMORY. ATNS A RESULT, IT IS NECESSARY TO" 1636 [139]B$[178]"P"[167]1639 1637 [153]" (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)." 1638 [161]A$:[139]A$[179][177][199](13)[167]1638 1639 [153]"LOADRESET THE DRIVE BEFORE RESUMING NORMAL" 1640 [153]"DRIVE OPERATION. (null)HIS IS DONE BY THE" 1642 [153]"PROGRAM ON PROPER EXIT. PEEKUT IF YOU" 1645 [153]"NOTICE ODD RESULTS, YOU MAY SELECT (null) FOR" 1646 [153]"RESET AT THE COMPUTER NUMBER PROMPT." 1647 [153]"(null)OW THE PURPOSE OF THIS FILE IS TO" 1650 [153]"DEMONSTRATE THE TECHNIQUE OF USING THE" 1655 [153]"STR$(null)(null) (null)(null)(null) AS A COPROCESSOR. (null)HE VALUE OF" 1660 [153]"CALCULATING (null)(null)(null) ((null))CLOSETO 119 SIGNIFICANT" 1662 [153]"FIGURES IS MOOT. PEEKUT THE 1541 CAN BE" 1665 [139]B$[178]"P"[167]1720 1670 [153]" (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)." 1680 [161]A$:[139]A$[179][177][199](13)[167]1680 1720 [153]"LOADGIVEN ANY ONE OF 27 DIFFERENT DEVICE" 1725 [153]"NUMBERS (4 TO 30). (null)O ONE LEN-64 AND 27" 1730 [153]"1541'S CAN BE ALL WORKING ON DIFFERENT" 1740 [153]"PARTS OF A PROBLEM AT THE SAME TIME." 1750 [153]:[153]"(null)ATN(null)(null) ATNPEEK(null)(null)(null) (null)(null)(null)(null)RIGHT$-(null)ATN(null)(null)RIGHT$(null)CHR$!" 1755 [139]B$[178]"P"[167][152]4:[160]4:[142] 1760 [153]" (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null) ASC(null)(null) (null)ATNRIGHT$(null) (null)VAL(null)(null)." 1770 [153]" ((null)(null) (null)(null)VAL(null)(null) (null) (null)(null) VAL(null)RIGHT$(null).)" 1780 [161]A$:[139]A$[178][199](13)[167][142] 1790 [139]A$[178]"X"[176]A$[178]"(null)"[167][153]"LOADRETURN";:[128] 1800 [137]1780 2007 [153]"LOADONE MOMENT PLEASE..." 2010 P[178][194](45)[170]256[172][194](46)[171]1 2015 P[178]P[171]974 2020 [129]I[178].[164]974:[151]49152[170]I,[194](P[170]I):[130] 2025 [151]2064,48:[137]7